import router from './router'
import store from './store'
import { Toast } from 'vant';
import { getToken } from '@/utils/auth'
import $ from 'jquery'
import { isRelogin } from '@/utils/request'

router.beforeEach((to, from, next) => {
  let token = getToken()
  if(token){
    // 判断当前用户是否已拉取完user_info信息
    if(store.getters.userInfo){
      if(to.path.indexOf('material') != -1){
        if(!$('body').hasClass('zank')){
          $('body').addClass('zank')
        }
      }else{
        if($('body').hasClass('zank')){
          $('body').removeClass('zank')
        }
      }
      next()
    }else{
      isRelogin.show = true
      store.dispatch('GetUserInfo').then(res=>{
        isRelogin.show = false
        if(to.path.indexOf('material') != -1){
          if(!$('body').hasClass('zank')){
            $('body').addClass('zank')
          }
        }else{
          if($('body').hasClass('zank')){
            $('body').removeClass('zank')
          }
        }
        next()
      }).catch(error=>{
        store.dispatch('LogOut').then(() => {
          Toast(error)
          next({ path: '/' })
        })
      })
    }

  }else{
    // 在免登录白名单，直接进入
    if(to.meta.anon){
      next()
    }else if(to.query && to.query.sign){// 飞书授权登录
      store.dispatch('Login',to.query.sign).then(res=>{
        isRelogin.show = true
        store.dispatch('GetUserInfo').then(res=>{
          isRelogin.show = false
          next()
        }).catch(error=>{
          store.dispatch('LogOut').then(() => {
            Toast(error);
            next({ path: '/' })
          })
        })
      }).catch(error=>{
        console.error(error)
      })
    }else{
      next(`/login?redirect=${to.fullPath}`) // 重定向到登录页
    }
  }
})

router.afterEach(() => {
})
